import Vue from "vue";
import vuex from "vuex"

Vue.use(vuex)


import {getuser, websiteInfo} from "@/api";

import Search from './Search'
import Account from './Account'
import News from './News'
import Home from './Home'
import Article from './Article'
import ArticleList from './ArticleList'
import Backend from './Backend'
import Rotation from "./Rotation";


//准备actions对象——响应组件中用户的动作
const actions = {
    // 获取用户信息
    async getUser(state, nid) {
        let info = await getuser(nid)
        if (info['code'] === 200) {
            state.commit('setUserInfo', info['data'])
        }
    },
    // 获取网站相关信息
    async getWebsiteInfo(state) {
        let info = await websiteInfo()
        if (info['code'] === 200) {
            state.commit('setWebsiteInfo', info['data'])
        }
    }
}

//准备mutations对象——修改state中的数据
const mutations = {
    // 修改用户数据
    setUserInfo(state, userinfo) {
        state.userinfo = userinfo
    },
    // 清空用户数据
    cleadUserInfo(state) {
        state.userinfo = null
    },
    // 修改页面当时高度
    setHeight(state, height) {
        state.height = height
    },
    // 修改网站相关信息
    setWebsiteInfo(state, data) {
        state.websiteInfo = data
    },
    //切换主题
    setZhuTi(state) {
        state.ZhuTi = !state.ZhuTi
    },
}

//准备state对象——保存具体的数据
const state = {
    ZhuTi: true,//表示使用哪个样式，true表示使用白色
    userinfo: {},    // 用户信息
    height: 0,  //页面高度
    websiteInfo: {}, // 网站相关信息
}

export default new vuex.Store({
    actions,
    state,
    mutations,
    modules: {
        Search, // 搜索功能
        Account,    // 账号登录注册等功能
        News,   // 新闻也获取功能
        Home,   // 主页
        Article,    //文章详情页
        ArticleList,    // 文章列表
        Backend,  //个人中心页
        Rotation,// 轮播图
    }
})